// 导入axios
import axios from 'axios'

// 如果是哪个js文件想用，就谁要用谁导入
import { Toast } from 'vant'
import { getToken } from './token'

// 创建出新的axios对象，并设置它的基地址
const request = axios.create({
  // 给新的axios对象设置基地址
  baseURL: 'http://interview-api-t.itheima.net/',
  // 设置最大连接时间为5000毫秒，也就是5秒
  timeout: 5000
})

// 请求拦截
request.interceptors.request.use(config => {
  // 有token才加
  if (getToken()) {
    config.headers.Authorization = `Bearer ${getToken()}`
  }
  return config
}, err => {
  return Promise.reject(err)
})
// 响应拦截
request.interceptors.response.use(response => {
  // 正常响应调用的函数 -- response就是响应的结果
  // 做数据剥离 -- 这样在外面拿到请求结果时不用多写一个data
  return response.data
}, err => {
  // 响应出错会调用的函数 -- err就是错误信息
  Toast.fail(err.response.data.message)
  return Promise.reject(err)
})

// 暴露请求对象
export default request
